<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // ES6 提供了新的数据结构 Set。它类似于数组，但是成员的值都是唯一的，没有重复的值。
        // Set本身是一个构造函数，用来生成 Set 数据结构。
        var set=new Set();
        console.log(set);
        // Set构造函数会自动将传入的数据转换为集合(对象)

        // 1.去重，set在构成中，必须保证每个元素都是唯一的
        var arr=[1,2,3,14,1,2,45,3];
        var set2=new Set(arr);
        //将set2转换为标准的数组
        var newArr=Array.from(set2);
        console.log(newArr);

        var set3=new Set("abcdabcd");
        console.log(set3);

        // 2.set内置方法
       /*  
        size ：返回Set 实例的成员总数。
        add(value) ：添加某个值，返回 Set 结构本身。
        delete(value) ：删除某个值，返回一个布尔值，表示删除是否 成功。
        has(value) ：返回一个布尔值，表示该值是否为Set 的成员。
        clear() ：清除所有成员，没有返回值。 
        */
        var set4=new Set();
        set4.add("洪琪琪");
        set4.add("李子柒");
        set4.add("李子柒");//去重操作
        set4.add([1,2,3]);
        set4.add([1,2,3]);
        var user={username:"alice"};
        set4.add(user);
        set4.add(user);
       
        console.log(set4.size);//元素的数量
        console.log(set4.delete("李子柒"));//返回布尔值
        console.log(set4.has([1,2,3]));//false
        console.log(set4.has(user));//true
        set4.clear();//清空
        console.log(set4);
    </script>
</head>
<body>
    
</body>
</html>